package org.sxp.common.annotation;

import java.lang.annotation.*;

/**
 * 数据过滤
 * 注意：目前新增了拦截器插件，mybatis-plus下的方法会自动拼接过滤条件，不需要再使用此注解
 * xml 仍然需要参考实现
 * 注解service方法：
 *                  @DataFilter(column = "DEVICE_CODE", value = "#params[devCode]")
 *                  方法申明入参：AeyeDataAuthorityDTO并赋值，如果是从controller过来的会自动赋值，rpc手动赋值
 * service代码带参：
 *                  params.put("sql_filter", AeyeLoginUtil.getCurrentUser().getDataFilterDto().buildSql());
 * xml代码拼接：
 *                  <where>
 *                      <if test="sql_filter != null">
 *                          and ${sql_filter}
 *                      </if>
 *                  </where>
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataFilter {

    boolean enable() default true;

    String tableAlias() default "";

    String column() default "";

    String value() default "";
}

